﻿<%@ Page Language="C#" AutoEventWireup="true" CodeFile="TeacherGrid.aspx.cs" Inherits="School_TeacherGrid" %>

<%@ Register Assembly="AspNetPager" Namespace="Wuqi.Webdiyer" TagPrefix="webdiyer" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
        <title>教师管理</title>
        
    <link href="../Common/css/main.css" rel="stylesheet" type="text/css" />
    <style type="text/css">
        #load{width:500px;height:25px;border:1px #000 solid;}
        #loading{position:absolute;z-index:2;height:23;filter:progid:DXImageTransform.microsoft.gradient(gradienttype=1,startColorStr=white,endColorStr=#39867b);}
        #loadtext{position:absolute;z-index:3;width:100%;height:100%;line-height:23px;text-align:center;}
    </style>

    <link href="../Common/css/main.css" rel="stylesheet" type="text/css" />    
    <script type="text/javascript" src="../Common/Js/jquery.js"></script>
    <script type="text/javascript" src="../Common/Js/common.js"></script>
    <script type="text/javascript" src="../Common/Js/msg.js"></script>
    <script type="text/javascript" src="../Common/Js/xTree/dhtmlxcommon.js"></script>
    <script type="text/javascript" src="../Common/Js/xTree/dhtmlxtree.js"></script>
    <link href="../Common/css/dhtmlxtree.css" rel="stylesheet" type="text/css" />
    
    
    <script type="text/javascript">
    
    var iCauseID = 0;
    var tree;
    var iEditTeachID = 0;
    var iCellNum = 5;   //设置班级的小窗口的每一排的班级数
    //当前应该打勾的
    var CurrentArr = new Array();
    //现在打勾的
    var checkArr = new Array();
    
    function jsright(rights,rightn) 
    { 

        var sr=rights; 

        sr = sr.substring(sr.length-rightn,sr.length); 

        return sr; 
    }
    
    //弹出对话框中的CheckBox操作
    
    function InitGradeClassTable()
    {
        PageMethods.GetSchoolType(function(succ)
        {
            if (succ > 0)
            {
                PageMethods.GetSchoolClsInfo(function(clsInfos)
                {
                	if (clsInfos.length>0)
                	{
                	    var table = document.getElementById('tableClassList');
                	    var arrGrade = GetGradeInfo(succ);
                	    for(var iGrade = 0; iGrade< arrGrade.length; iGrade++)
                	    {
                	        var bFind = false;
                	        //查找年级下有无班级，没有班级则不进行插入
                            for(var clsNum = 0; clsNum < clsInfos.length ; clsNum++)
                            {
                                if(clsInfos[clsNum].Grade == arrGrade[iGrade].gradeIndex)
                	            {
                	                bFind = true;
                	                break;
                	            }
                	         }
                	         
                	         if (!bFind)    
                	            continue;
                	          
                	        //插入年级CheckBox
                	        var newTr = table.insertRow();
                	        var objTd = newTr.insertCell();
                            objTd.style.textAlign = "left";
                            
                            var GradeCheckBoxID = arrGrade[iGrade].gradeIndex - 2 * arrGrade[iGrade].gradeIndex;
                            
                            objTd.innerHTML = "<input style='margin-left:5px;' id='" +GradeCheckBoxID+ "' onclick='gradeChecked(this);' type='checkbox' name='cbAppr' value='table" + arrGrade[iGrade].gradeIndex +"'/>"+ arrGrade[iGrade].gradeName;
                            
                            //插入班级行
                            var newTr1 = table.insertRow();
                	        var objTd1 = newTr1.insertCell();
                	        objTd1.style.textAlign = "left";
                            
                            //准备插入班级行
                            var strClassHTML = "<table id='table"+ arrGrade[iGrade].gradeIndex + "' >";
                            var iClsNum = 0;
                            
                            for(var clsNum = 0; clsNum < clsInfos.length ; clsNum++)
                            {
                                if(clsInfos[clsNum].Grade == arrGrade[iGrade].gradeIndex)
                	            { 
                	                //判断是否是第1、4、7个，如果是。则重新加入行头符
                	                if (iClsNum%iCellNum == 0)
                	                    strClassHTML = strClassHTML + "<tr><td style ='text-align: left; width:31px; border:0px; margin-left:5px;'></td>";
                	                    
                                    if (clsInfos[clsNum].ClsName.length > 8)
                                    {
                                        clsName = clsInfos[clsNum].ClsName.substring(0,7) + "...";
                                        title = clsInfos[clsNum].ClsName;                                                                                                                                                                                    
                                        strClassHTML = strClassHTML + "<td style ='text-align: left; width:105px; border:0px; margin-left:5px;'><input id='"+clsInfos[clsNum].RID+"' onclick='classChecked(this);' type='checkbox' name='cbAppr' value='"+GradeCheckBoxID+ "'/>"+ "<font title=\"" + title + "\">&nbsp;" + clsName + "</font></td>"   	                
                                    }
                                    else
                                    {
                	                    strClassHTML = strClassHTML + "<td style ='text-align: left; width:105px; border:0px; margin-left:5px;'><input id='"+clsInfos[clsNum].RID+"' onclick='classChecked(this);' type='checkbox' name='cbAppr' value='"+GradeCheckBoxID+ "'/>"+clsInfos[clsNum].ClsName+"</td>"   	                
                	                }
                	                iClsNum = iClsNum + 1;
                	                
                	                //判断是否是3、6、9....如果是，则加入行尾符
                	                if (iClsNum != 0 && iClsNum%iCellNum == 0)
                	                {
                	                    strClassHTML = strClassHTML + "</tr>";
                	                    iClsNum == 0;
                	                }                	                
                	            }
                            }
                            //判断最后五个字符，是否等于</tr>,不是则添加</tr>
            	            if (jsright(strClassHTML,5) != "</tr>")
            	                strClassHTML = strClassHTML + "</tr>";                	        
                	        
            	            strClassHTML = strClassHTML + "</table>"
            	            objTd1.innerHTML = strClassHTML;
                	    }

//                	    var table = document.getElementById('tableClassList');
//                	    var arrGrade = GetGradeInfo(succ);
//                	    for(var iGrade = 0; iGrade< arrGrade.length; iGrade++)
//                	    {
//                	        //插入年级CheckBox
//                	        var newTr = table.insertRow();
//                	        var objTd = newTr.insertCell();
//                            objTd.style.textAlign = "left";
//                            objTd.style.width = "15%";
//                            objTd.style.valign="top";
//                            var GradeCheckBoxID = arrGrade[iGrade].gradeIndex - 2 * arrGrade[iGrade].gradeIndex;
//                            
//                            objTd.innerHTML = "<input style='margin-left:5px;' id='" +GradeCheckBoxID+ "' onclick='gradeChecked(this);' type='checkbox' name='cbAppr' value='table" + arrGrade[iGrade].gradeIndex +"'/>"+ arrGrade[iGrade].gradeName;
//                	        
//                	        
//                	        //插入班级CheckBox 
//                	        var ObjTd2 = newTr.insertCell();
//                	        ObjTd2.style.textAlign = "left";
//                	        ObjTd2.style.width = "85%";
//                	        
//                	        var strClassHTML = "<table id='table"+ arrGrade[iGrade].gradeIndex + "' >" //class='subTable'
//                	        var iClsNum = 0;
//                	        for(var clsNum = 0; clsNum < clsInfos.length ; clsNum++)
//                	        {
//                	            if(clsInfos[clsNum].Grade == arrGrade[iGrade].gradeIndex)
//                	            { 
//                	                //判断是否是第1、4、7个，如果是。则重新加入行头符
//                	                if (iClsNum%iCellNum == 0)
//                	                {
//                	                    strClassHTML = strClassHTML + "<tr>";
//                	                }
//                	                                                                                                            //style='margin-left:3px;'
//                	                strClassHTML = strClassHTML + "<td style ='text-align: left; width:92px; border:0px;'><input id='"+clsInfos[clsNum].RID+"' onclick='classChecked(this);' type='checkbox' name='cbAppr' value='"+GradeCheckBoxID+ "'/>"+clsInfos[clsNum].ClsName+"</td>"   	                
//                	                iClsNum = iClsNum + 1;
//                	                
//                	                //判断是否是3、6、9....如果是，则加入行尾符
//                	                if (iClsNum != 0 && iClsNum%iCellNum == 0)
//                	                {
//                	                    strClassHTML = strClassHTML + "</tr>";
//                	                    iClsNum == 0;
//                	                }                	                
//                	            }
//                	        }
//                	        //判断最后五个字符，是否等于</tr>,不是则添加</tr>
//                	        if (jsright(strClassHTML,5) != "</tr>")
//                	            strClassHTML = strClassHTML + "</tr>";                	        
//                	        
//                	        strClassHTML = strClassHTML + "</table>"
//                	        ObjTd2.innerHTML = strClassHTML;
//                	    }

                	}
                },function()
                {
                
                })
           }
        })
    }
    
    //点击年级框
    function gradeChecked(obj)
    {
        var tables=document.getElementById("tableClassList").getElementsByTagName('table');
        if (tables == null)     return;
        
        //alert('tables个数：'+tables.length);
        
        for(var i=0;i < tables.length;i++){
　　　　    var table = tables[i];
　　　　    if(table.id == obj.value)
　　　　    {
　　　　　      //找到表格，开始遍历表中所有的CheckBox
　　　　　      var checkItems=table.getElementsByTagName('input');
　　　　　      
　　　　　      //alert(checkItems);
　　　　　      
　　　　　      if (checkItems == null) return;
　　　　　    
　　　　　      //alert('checkbox个数：' + checkItems.length);
　　　　　      
                for(var j=0;j < checkItems.length;j++)
                {
                    var checkItem= checkItems[j];
                    if(checkItem.type == 'checkbox')
                    {
                        //alert('id:' + checkItem.id);
                        checkItem.checked = obj.checked ;
                    }
　　            }
　　　　    }
　　    }
    }
    
    //点击班级框
    function classChecked(obj)
    {
        var checkItems=document.getElementById("tableClassList").getElementsByTagName('input');
        
        if (checkItems == null)     return;
        
        for(var i=0;i < checkItems.length;i++)
        {
            var checkItem= checkItems[i];
            //找到年级CheckBox
            if (checkItem.id == obj.value)
            {
                if (obj.checked)            //打钩
                {
                    checkItem.checked = true;
                }
                else                        //取消打钩
                {
                    var count = getClassCheckedCount(obj);
                    if (count == 0)
                        checkItem.checked = false;
                }
            }
        }
    }
    
    //获取班级CheckBox列表中的
    function getClassCheckedCount(obj)
    {
        var count = 0;
        //找到班级CheckBox所在的表格
        var table = obj.parentElement.parentElement.parentElement;

        if (table == null)      return;
        
　      //找到表格，开始遍历表二中所有的CheckBox
　      var checkItems=table.getElementsByTagName('input');
　      
　      if (checkItems == null)     return;
　    
        for(var i=0;i < checkItems.length;i++)
        {
            var checkItem= checkItems[i];
            if(checkItem.type==='checkbox')
            {
                if (checkItem.checked)
                    count++;
            }
        }
        
        return count;
    }
    //弹出对话框中的CheckBox操作结束
   
    function CheckedAll(obj)
    {
        var checkItems=document.getElementById("teacherTable").getElementsByTagName('input');
        for(var i=0;i < checkItems.length;i++){
　　　　    var checkItem= checkItems[i];
　　　　    if(checkItem.type==='checkbox'){
　　　　　    checkItem.checked = obj.checked ;
　　　　    }
　　    }
    }
    
    function IsExistTeacher(isExsit)
    { 
        if (isExsit == 1)
        {
           showMassgeBox("提示",TEACHER_IS_EXIST);
        }    
    }
    
    function ValidateChecked()
    {
        var arr = new Array();
        if(document.getElementById("teacherTable") != null)
        {
            var checkItems=document.getElementById("teacherTable").getElementsByTagName('input');
　　        for(var i=1;i < checkItems.length;i++){
　　　　        var checkItem= checkItems[i];
　　　　        if(checkItem.type==='checkbox' && checkItem.checked)
　　　　        {
　　　　            arr.push(checkItem.userid);
　　　　        }
　　        }
　　    }
        return arr;
    }
    
    //批量删除教师信息
    function DeleteList()
    {
        var arr = ValidateChecked();
        if(arr.length > 0)
        {
            //进行批量删除
            showConfirmBox("删除", TEACHER_DELETE, delTeacherInfo, arr);
        }
        else
            showMassgeBox("提示",TEACHER_NO_SELECT);
    }

    function delTeacherInfo(obj)
    {
        PageMethods.DeleteTeacher(iCauseID,obj,function(succ){
            if (succ > 0)
            {
                Bind();
            }

        },function(err){
            showMassgeBox("提示",USER_DEL_FAIL,1,null);
        });
    }

       //添加窗口
    function ShowUpdateWindow(obj)
    {
        //显示添加教师信息对话框
        ShowPopForm("popTable", "formTitle", "设置任课信息");
        //显示背景遮罩
        ShowMask();
        
        //获取教师的班级信息
        var teachID = obj.id;
        iEditTeachID = teachID;
        
        
        PageMethods.GetClsByTeachCause(teachID, iCauseID,function(succ)
        {
            if (succ.length > 0)
            {                
                for(var i = 0; i < succ.length; i++)
                {
                    if (succ[i].ClsID != 0)
                        CurrentArr.push(succ[i].ClsID); //将当前的班级ID保存，以便保存失败后，还原界面打勾
                }
                
                setClassCheckBoxStatus(CurrentArr);
            }        
            
        },function(err){//异步失败
            showMassgeBox("提示",TEACHER_QUERY_FAIL,1,null);
        })
        
    }
    
    //根据obj里面的数字，将表格里面ID为这些数字的CheckBox打勾
    function setClassCheckBoxStatus(obj)
    {
        var checkItems=document.getElementById("tableClassList").getElementsByTagName('input');
        
        if (checkItems == null) return;
        
        for(var i = 0; i < obj.length; i++)
        {
            for(var j = 0; j< checkItems.length; j++)
            {
                if (obj[i] == checkItems[j].id && checkItems[j].type == "checkbox")
                {
                    checkItems[j].checked = true;
                    classChecked(checkItems[j]);
                }
            }
        }
    }
    
    //将表格里面所有的CheckBox全部取消打勾
    function UnCheckAllBox()
    {
        var checkItems=document.getElementById("tableClassList").getElementsByTagName('input');
        
        if (checkItems == null) return;
        
         for(var j = 0; j< checkItems.length; j++)
         {
            if (checkItems[j].type == "checkbox")
                checkItems[j].checked = false;
         }
    
    }
    
    //获取所在勾选状态的CheckBox的ID
    function GetCheckedID()
    {
        var checkItems=document.getElementById("tableClassList").getElementsByTagName('input');
        
        if (checkItems == null) return;
        
         for(var j = 0; j< checkItems.length; j++)
         {
            if (checkItems[j].type == "checkbox" && checkItems[j].checked == true && checkItems[j].id > 0)
                checkArr.push(checkItems[j].id);
         }        
    }
    
    function ShowMask()
    {
        showMask();
        self.parent.frames['left'].showMask();
    }
    
    function CloseMask(formId)
    {
        self.parent.frames['left'].activate = 1;
        editCauseID = 0;
        
        ReleasePopTable();
        ClosePopForm(formId,true);
        hideMask();
        self.parent.frames['left'].hideMask();
    }
            
    function ReleasePopTable()
    {
        
        UnCheckAllBox();
        
        CurrentArr = new Array();
        checkArr = new Array();
    }
    
    function Save()
    {
        GetCheckedID();
	    

        PageMethods.SavaSetting(iEditTeachID, iCauseID, checkArr, function(succ)
        {
            if (succ > 0)
            {
               showMassgeBox("提示",TEACHSETTING_UPDATE_SUCC,1,null);
               CloseMask("popTable");
               Bind();	                       
            }
            else if(succ == -1)
            {
                showMassgeBox("提示",CLASS_CAUSE_HAVE_TEACHER,1,null);
                ResetCheckBox();
            }
            else
            {
                showMassgeBox("提示",TEACHSETTING_UPDATE_FAIL,1,null);
                ResetCheckBox();
            }
	            	    
        },function(err)
        {
            showMassgeBox("提示",TEACHSETTING_UPDATE_FAIL,1,null);
            ResetCheckBox();
        })
    }
    
    //根据之前保存的CurrentArr，重新设置打勾项
    function ResetCheckBox()
    {
        UnCheckAllBox();
        
        setClassCheckBoxStatus(CurrentArr);
        
        checkArr = new Array();
        
    }
    
    function Load()
    {
        var arr = new Array();
        var u = window.location.toString();
        u = u.split('?');
        if (typeof(u[1]) == 'string') {
            u=u[1].split('&');
            for(var i=0;i<u.length;i++)
            {
                s=u[i].split("=");
                eval('arr["' + s[0] + '"]' + '="' + s[1]+'"');
            }
        }
        var id = arr['id'];
        iCauseID = id;
        
        if (id != null)
        { 
            Bind();
        }
        //InitClassList();
        
        InitGradeClassTable();
    }
    
    function Bind()
    {
        document.getElementById('HFCauseIDValue').value = iCauseID;
        document.getElementById('btnBind').click();  

    }

    //设置行点击高亮
    function SetHightLight(obj)
    {
        obj.style.backgroundColor = "#fffccf";
        var table = document.getElementById('teacherTable');
        for(var i =0 ; i < table.rows.length;i++)
        {
        var row = table.rows[i];
        if(row != null && row.id != obj.id)
            row.style.backgroundColor = "#ffffff";

        }
    }

    </script>
</head>
<body onload="Load();">
    <div class="mainWarp">
        <div class="pageBody">
            <form id="form1" runat="server">
                <div>
                    <ul class="butList">
                        <li>
                            <input type="button" id="btnDel" value="移除" class="commonBut" onclick="DeleteList();" /></li>                       
<%--                        <li>
                            <input type="button" id="resetPass" value="查看班级课程信息" onclick="window.open('ClassCauseFrame.aspx')" class="commonBut" /></li>--%>
                    </ul>
                </div>
                <div>
                    <asp:ScriptManager ID="ScriptManager1" runat="server" EnablePageMethods="true">
                    </asp:ScriptManager>
                </div>
                 <asp:UpdatePanel ID="UpdatePanel1" runat="server">
                        <ContentTemplate>
                            <asp:Repeater ID="Repeater1" runat="server">
                                <HeaderTemplate>
                                    <table id="teacherTable" border="0" cellpadding="0" cellspacing="1" class="useList">
                                        <tr class="tableTitle">
                                            <th width="5%" height="26">
                                                <input type="checkbox" onclick="CheckedAll(this);" /></th>
                                            <th width="15%" style="text-align: left;padding-left:5px;">
                                                工号</th>
                                            <th width="20%" style="text-align: left;padding-left:5px;">
                                                姓名</th>                                            
                                            <th width="50%" style="text-align: left;padding-left:5px;">
                                                任课信息</th>
                                            <th width="10%">
                                            </th>
                                        </tr>
                                </HeaderTemplate>
                                <ItemTemplate>
                                    <tr id="<%# DataBinder.Eval(Container.DataItem, "RID") %>" onclick="SetHightLight(this);"
                                        style="background-color: White;">
                                        <td height="26">
                                            <input type="checkbox" userid="<%# DataBinder.Eval(Container.DataItem, "RID") %>" /></td>
                                        <td name="TechCode" style="text-align: left; font-weight: normal;padding-left:5px;" onselect="document.selection.empty()">
                                            <%# DataBinder.Eval(Container.DataItem, "TeachCode")%>
                                        </td>
                                        <td name="TechName" style="text-align: left; font-weight: normal;padding-left:5px;" onselect="document.selection.empty()">
                                            <%# DataBinder.Eval(Container.DataItem, "TeachName")%>
                                        </td>                                        
                                        <td style="text-align: left; font-weight: normal;padding-left:5px;">
                                            <%# DataBinder.Eval(Container.DataItem, "ClsSubName")%>
                                        </td>
                                        <td>
                                            <img src="../common/images/setting.gif" alt="设置任课信息" class="imageBtnStyle" onclick="ShowUpdateWindow(this.parentElement.parentElement)" />
                                            <%--<img src="../common/images/delete_icon.gif" alt="删除" class="imageBtnStyle" onclick="DelTeacherInfo(this.parentElement.parentElement);" />--%>
                                        </td>
                                    </tr>
                                </ItemTemplate>
                                <FooterTemplate>
                                    </table>
                                </FooterTemplate>
                            </asp:Repeater>
                             <webdiyer:aspnetpager id="AspNetPager1" runat="server" horizontalalign="Right"  PageSize="15" 
                                 width="100%"   PagingButtonSpacing="10px" ButtonImageAlign="left" 
                                OnPageChanged="AspNetPager1_PageChanged"> </webdiyer:aspnetpager> 
                        </ContentTemplate>
                        <Triggers>
                            <asp:AsyncPostBackTrigger ControlID="btnBind" EventName="Click" />
                        </Triggers>
                    </asp:UpdatePanel>
                    <div style="display: none;">
                        <asp:Button ID="btnBind" runat="server" OnClick="btnBind_Click" Text="btnBind" />
                        <asp:HiddenField id="HFCauseIDValue" runat="server" Value=""></asp:HiddenField>
                    </div>
                </form>
                
            <div id="popTable" class="layoutWarp" style="display: none; width: 600px; overflow: inherit; text-align:left;">
                <div class="title">
                    <span id="formTitle">新增</span> <a title="关闭" onclick="return CloseMask('popTable')">
                        关闭</a>
                </div><!--class="layoutTable" margin-top: 12px;border:1px solid red;-->
                <table style="width: 596px; margin-bottom: 12px;">
                    <tr>
                        <td colspan="3" valign="top">
                            <div id="divTreeBox" style="height: 250px; display: block; overflow: auto; width: 596px;">
                                <table id="tableClassList" cellpadding="0" cellspacing="1" bordercolor="#c3dce5" style="width:556px; margin-left: 18px; border:0px;" >
<%--                                <tr>
                                    <td style="width: 20%">
                                        年级</td>
                                    <td style="width: 80%">
                                        班级</td>
                                </tr>--%>
                                </table>
                            </div>
                        </td>
                    </tr>
                    <tr>
                        <td colspan="3" align="center">
                            <ul class="butList">
                                <input type="button" id="btnSave" value="保存" onclick="Save()" class="commonBut" />
                                <input type="button" value="取消" onclick=" CloseMask('popTable');" class="commonBut" />
                            </ul>
                        </td>
                    </tr>
                </table>
            </div>
         </div>
     </div>
</body>
</html>
